package bom.pojo.organization;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author: Fancyears·Maylos·Malvis
 * @Description: 菜单树结构
 * @Date: Created in  2018/11/27 14:23
 * @Modified By:
 */
@Data
public class Tree implements Comparable<Tree> {
    /**
     * 主键
     */
    private Long id;
    /**
     * 代码
     */
    private String code;
    /**
     * 图标
     */
    private String icon;
    /**
     * 显示的名
     */
    private String name;
    /**
     * 父层节点ID
     */
    private Long parentId;
    /**
     * 节点排序号
     */
    private Long treeOrder;
    /**
     * 指向的URL
     */
    private String url;
    /**
     * 状态
     */
    private String state;
    /**
     * 菜单节点是否选中的状态
     */
    private boolean checked;
    /**
     * 父菜单信息
     */
    private Tree tree;
    /**
     * 子菜单节点信息
     */
    private List<Tree> child = new ArrayList<Tree>();

    public Tree() {
        super();
    }

    public Tree(Long id) {
        this.id = id;
    }

    /**
     * 功能描述：实现集合根据treeOrder字段进行排序的功能
     *
     * @param o
     * @return
     */
    @Override
    public int compareTo(Tree o) {
        return Math.toIntExact(this.getTreeOrder() - o.getTreeOrder());
    }
}
